package itHeima.lesson8;

public class demo3 {
    /**
     * 某系统的数字密码是一个四位数，如1983，
     * 为了安全，需要加密后再传输，加密规则是：
     * 对密码中的每位数，都加5，再对10求余，
     * 最后将所有数字顺序反转，得到一串加密后的新数，
     * 请设计出满足本需求的加密程序！
     */
    public static void main(String[] args) {

        String password = jiaMi(1983);
        System.out.println(password);

    }

    public static String jiaMi(int number) {
//       1. main函数获取的数值传到number中
        int[] passWord = chiFen(number);
//        3.将password数组遍历 并且每一个都+5%10
        for (int i = 0; i < passWord.length; i++) {
            passWord[i] = (passWord[i] + 5)%10;
        }
//        4.将加密好的数组传入到fanzhuan中
        fanZhuan(passWord);

//        将加密的新数遍历拼接
        String data = "";
        for (int i = 0; i < passWord.length; i++) {
            data += passWord[i];

        }
        return data;
    }

/**
 *  将传入的password反转反转流程
 *              * 定义一个temp
 *              1   9   8   3
 *              i           j   temp =3
 *
 *              3   9   8   1
 *                  i   j       temp =8
 *              3   8   9   1
 *
 */

    private static void fanZhuan(int [] passWord) {
        for (int i = 0, j = passWord.length -1 ; i < j; i++ , j--) {
                int temp = passWord[j];
                passWord[j]= passWord[i];
                passWord[i] = temp;
        }
    }

    public static int[] chiFen(int number) {
//        2.首先创建一个动态数组passw，将传入的值，拆分后单个保存到password数组中
        int[] passWord = new int[4];
        passWord[0] = number / 1000;
        passWord[1] = (number / 100) % 10;
        passWord[2] = (number / 10) % 10;
        passWord[3] = number % 10;
//        拆分之后返回password数组的地址
        return passWord;
    }


}